﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
using System.IO;


namespace Tworzenie_Grafiku
{
    /// <summary>
    /// Interaction logic for Historia.xaml
    /// </summary>
    public partial class Historia : Window
    {
        public Historia()
        {
            InitializeComponent();
            this.Show();
            Data_od.Text =Convert.ToString( DateTime.Now);

            Data_do.Text = Convert.ToString(DateTime.Now);
       
        }

       
        private void button1_Click(object sender, RoutedEventArgs e)
        {
            

            this.Close();
        }
        List<Wizyta> listadanych = new List<Wizyta>();
        private void button3_Click(object sender, RoutedEventArgs e)
        {
         
            using (LINQtoDBDataContext db = new LINQtoDBDataContext())
            {
                var records = from record in db.Wizytas
                              where record.Data_rezerwacji >= Convert.ToDateTime(Data_od.Text) && record.Data_rezerwacji <= Convert.ToDateTime(Data_do.Text)
                              select record;
                listadanych = records.ToList();
            }
            Tabela.ItemsSource = listadanych;
        }

        private void eksport_Click(object sender, RoutedEventArgs e)
        {
            string sciezka =Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
            string nazwa = System.IO.Path.Combine(sciezka, "Historia z dni " + Data_od.Text + " - " + Data_do.Text+".txt");
            using (StreamWriter zapis = File.CreateText(nazwa))
            {
                string pierwsza;
                string lekarz;
                string pacjent;
                zapis.WriteLine("Wizyty z dni " + Data_od.Text + " - " + Data_do.Text);
                zapis.WriteLine();
                zapis.WriteLine();
                foreach( Wizyta wiersz in listadanych)
                {

                    using (LINQtoDBDataContext db = new LINQtoDBDataContext())
                    {
                        Lekarz records = (from record in db.Lekarzs
                                      where record.Id_lekarza==wiersz.Id_lekarza  select record).Single();
                        lekarz = "Dr. "+records.Nazwisko + " " + records.Imie;
                    }

                    using (LINQtoDBDataContext db = new LINQtoDBDataContext())
                    {
                        Pacjent records = (from record in db.Pacjents
                                          where record.Pesel == wiersz.Pesel_pacjenta
                                          select record).Single();
                        pacjent = records.Nazwisko + " " + records.Imie;
                    }
                    if (wiersz.Pierwsza_wizyta == true) 
                        pierwsza = "Tak";
                    else pierwsza = "Nie";

                    zapis.WriteLine("Id wizyty:" + wiersz.Id_wizyty +  ", Lekarz: " + lekarz );
                    zapis.WriteLine("Pacjent: " + pacjent + ", Data: " + wiersz.Data + ", Godziny przyjęć: " + wiersz.Godzina_rozpoczeczia + "-" + wiersz.Godzina_zakonczenia);
                    zapis.WriteLine("Pierwsza wizyta: " + pierwsza + ", Status rezerwacji: " + wiersz.Status_rezerwacji );
                    zapis.WriteLine("Data dokonania rezerwacji: " + wiersz.Data_rezerwacji );
                    zapis.WriteLine("---------------------------------------------------------------------");
                }
                zapis.Close();
            }
        }

    }
}
